package base.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.UUID;

import org.springframework.web.multipart.MultipartFile;

public class UploadFile {
	
	
	
	public static String uploadFile2(MultipartFile files, String imageUrl) {
	       
    	String imageName = null;
    	
       
           
            if (!files.isEmpty()) {
                int pre = (int) System.currentTimeMillis();
                try {
                    // 检验文件夹是否存在，不存在 就创建
                	File filename = new File(imageUrl);
            		// 如果文件不存在，则创建一个新文件
            		if (!filename.isFile()) {
            			try {
            				filename.mkdir();
            			} catch (Exception e) {
            				e.printStackTrace();
            			}
            		}
                    //FileUtil.makeDir(SystemConstant.BASE_IMAGE_ADDRESS + imageUrl);
                    // 文件后缀名
                    String suffix = files.getOriginalFilename().substring(files.getOriginalFilename().lastIndexOf(".") + 1, files.getOriginalFilename().length());
                    // 拿到输出流，同时重命名上传的文件
//                    String imageName = new Date().getTime() + files[i].getOriginalFilename();
                    imageName = UUID.randomUUID().toString() + "." + suffix;
                    FileOutputStream os = new FileOutputStream(imageUrl + imageName);

                    // 拿到上传文件的输入流
                    InputStream in = files.getInputStream();
                    // 以写字节的方式写文件
                    int len = 0;
                    byte[] bb = new byte[4096];
                    while ((len = in.read(bb)) != -1) {
                        os.write(bb, 0, len);
                    }
                    os.flush();
                    os.close();
                    in.close();
            
                } catch (Exception e) {
                    e.printStackTrace();
                   
                }
            
        }
        return imageName;
    }
	
	
	/**
     * 文件上传
     * 
     * @param files
     *            要上传的文件
     * @param fileUrl
     *            文件上传路径
     */
    public static String uploadFile(MultipartFile[] files, String imageUrl) {
       
    	String imageName = null;
    	
        for (int i = 0; i < files.length; i++) {
           
            if (!files[i].isEmpty()) {
                int pre = (int) System.currentTimeMillis();
                try {
                    // 检验文件夹是否存在，不存在 就创建
                	File filename = new File(imageUrl);
            		// 如果文件不存在，则创建一个新文件
            		if (!filename.isFile()) {
            			try {
            				filename.mkdir();
            			} catch (Exception e) {
            				e.printStackTrace();
            			}
            		}
                    //FileUtil.makeDir(SystemConstant.BASE_IMAGE_ADDRESS + imageUrl);
                    // 文件后缀名
                    String suffix = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".") + 1, files[i].getOriginalFilename().length());
                    // 拿到输出流，同时重命名上传的文件
//                    String imageName = new Date().getTime() + files[i].getOriginalFilename();
                    imageName = UUID.randomUUID().toString() + "." + suffix;
                    FileOutputStream os = new FileOutputStream(imageUrl + imageName);

                    // 拿到上传文件的输入流
                    InputStream in = files[i].getInputStream();
                    // 以写字节的方式写文件
                    int len = 0;
                    byte[] bb = new byte[4096];
                    while ((len = in.read(bb)) != -1) {
                        os.write(bb, 0, len);
                    }
                    os.flush();
                    os.close();
                    in.close();
            
                } catch (Exception e) {
                    e.printStackTrace();
                   
                }
            }
        }
        return imageName;
    }
    
}
